;	��������� �������� ����
;	-----------------------
; ��� ����������� ����� � ��� ����� �������� � ����������
;
cr		equ	0dh	;��� ASCII �������� �������
lf		equ	0ah	;��� ASCII �������� ������
		org	100h
Start:	jmp	Begin	;������� ����� ������
;	������ ���������
Msg1		db	'Vvedite imya kopiruemogo faila', cr, lf, '$'
Msg2		db	'Kopiruemii fail otsutsuvuet', cr, lf, '$'
Msg3		db	'Vvedite imya faila-kopii', cr, lf, '$'
Msg4		db	'Oshibka sozdaniy faila', cr, lf, '$'
Msg5		db	'Oshibka chteniy faila', cr, lf, '$'
Msg6		db	'Oshibka zapisi faila', cr, lf, '$'
Msg7		db	'Kopirovanie vipolneno', cr, lf, '$'
Lname0		db	81			;������������ ����� ����� �����
Lname		db	0			;����������� ����� ����� �����
Namefile	times	81	db	0	;����� ����������� ��� �����
Bufer		times	512	db	0	;����� ��� ����������� �����
Lognum1		dw	0			;���������� ����� ����� 1
Lognum2		dw	0			;���������� ����� ����� 2
;	������� ���������
Begin:
; ������ � �������� ����������� �����
	mov dx,Msg1				;����� ��������� � ��������
	mov ah,9				; ������ ���
	int 21h					; ����������� �����
	mov ah,0ah				;������� ����� ������
	mov dx,Lname0				;DX <- �����-�������� ������ �����
	int 21h					;���� ������
	xor bx,bx				;BX <- 0
	mov bl,[Lname]				;BX <- ����� ����� �����
	mov [Namefile+bx],byte 0		;������ �������� �����
	mov ah,3dh				;��������
	mov dx,Namefile				; �����������
	mov al,0				; �����
	int 21h					; �� ������
	jnc .M1					;���� �������
	mov dx,Msg2				;����� ���������
	mov ah,9				; �� ����������
	int 21h					; ����������� �����
	jmp .Exit				;�� ���������� ���������
.M1:	mov [Lognum1],ax			;���������� �����. ������ �����
; �������� � �������� �����-�����
	mov dx,Msg3				;����� ��������� � ��������
	mov ah,9				; ������ ���
	int 21h					; �����-�����
	mov ah,0ah				;������� ����� ������
	mov dx,Lname0				;DX <- �����-�������� ������ �����
	int 21h					;���� ������
	xor bx,bx				;BX <- 0
	mov bl,[Lname]				;BX <- ����� ����� �����
	mov [Namefile+bx],byte 0		;������ �������� �����
	mov ah,3ch				;��������
	mov dx,Namefile				; �
	mov cx,0				; ��������
	int 21h					; �����-�����
	jnc .M2					;���� �������
	mov dx,Msg4				;����� ���������
	mov ah,9				; �� ������
	int 21h					; �������� �����
	jmp .Exit				;�� ���������� ���������
.M2:	mov [Lognum2],ax			;���������� �����. ������ �����
; ����������� �����
.M3:	mov ah,3fh				;������� ������ �� �����
	mov bx,[Lognum1]			;BX <- �����. ����� ��������� �����
	mov cx,512				;CX <- ����� �������� ������
	mov dx,Bufer				;DX <- �����-�������� ������
	int 21h					;������ �� ����� � �����
	jnc .M4					;���� �������
	mov dx,Msg5				;����� ���������
	mov ah,9				; �� ������
	int 21h					; ������ �����
	jmp .Exit				;�� ���������� ���������
.M4:	mov bx,[Lognum2]			;BX <- �����. ����� �����-�����
	mov cx,ax				;CX <- ����� ������������ ������
	mov ah,40h				;������� ������ � ����
	mov dx,Bufer				;DX <- �����-�������� ������
	int 21h					;������ �� ������ � ����
	jnc .M5					;���� �������
	mov dx,Msg6				;����� ���������
	mov ah,9				; �� ������
	int 21h					; ������ � ����
	jmp .Exit				;�� ���������� ���������
.M5:	cmp ax,512				;����� �����?
	jz .M3					;���� ���
; ���������� ���������
	mov dx,Msg7				;����� ���������
	mov ah,9				; � ����������
	int 21h					; �����������
.Exit:	mov ax,4c00h				;������� � DOS �
	int 21h					; ����� ���������� 0

	
 